#ifndef DQUEUE_H_INCLUDED
#define DQUEUE_H_INCLUDED

#include<iostream>
#include<stdio.h>
#include<math.h>

#define LEN sizeof(struct DQueuelist)

using namespace std;

void testDQueue();

typedef struct DQueuelist
{
        int data;
        struct DQueuelist *prior; //结构体前向指针
        struct DQueuelist  *next;//stray结构体后向指针
}DQueuelist, DQueueptr;

typedef struct{      //定义双端队列
        DQueueptr front; //头指针，指向链队列头节点
        DQueueptr rear;   //尾指针，指向链队列最后一个节点
}LinkDQueue;

//函数声明部分
void Error(char *s); //错误处理函数
LinkDQueue Create_DQueuelist();//创建双端队列函数
void En_DQueuelist(LinkDQueue &q, int e); // 入对函数
void De_DQueuelist(LinkDQueue &q, int e);//出对函数
void Print_DQueuelist(LinkDQueue &q);//计算长度
int Getlength_DQueuelist(LinkDQueue &q);
void Gethead_DQueuelist(LinkDQueue &q, int e);
void Destroy_DQueuelist(LinkDQueue &q);

#endif // DQUEUE_H_INCLUDED
